package dto.houseForeclosureDto;

import dto.systemDto.SysDeptDto;
import dto.systemDto.PageDto;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

@Data
@Getter
@Setter
public class TsfContractDto extends PageDto {
    /**
     * 主键id
     */
    private Long id;

    /**
     * 合同编号（系统生成）
     */
    private String sfContractNo;

    /**
     * 外部合同编号（线下合同编号）
     */
    private String outContractNo;

    /**
     * 上一合同ID，续约合同的时候
     */
    private Long lastContractId;

    private String lastContractNo;

    /**
     * 商户ID
     */
    private Long businessId;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 部门编号
     */
    private String deptNo;

    /**
     * 小区名(使用楼盘名称)
     */
    private String premiseName;

    private String houseInfo;

    private String houseId;

    private Integer houseType;

    private String houseZsNo;

    private String cqAddress;
    //业主ID
    private Long ownerId;
    private String ownerName;

    private Integer certificateType;

    private String ownerIdCard;

    private String ownerMobile;

    private String ownerContactAddress;

    //是否为签约人 0:是   1:否
    private Integer signWithOwner;

    private String signUserName;

    private String signUserIdCard;

    private  String signUserMobile;

    private String signUserEmergencyPhone;

    private String bankCard;

    private String bankUserName;

    private String bankUserIdCard;

    private String bankOpen;

    private String bankName;
    /**
     * 租约期限开始时间
     */
    private LocalDateTime leaseStartTime;

    /**
     * 租约期限结束时间
     */
    private Date leaseEndTime;


    /**
     * 收房月租金
     */
    private BigDecimal monthRent;

    /**
     * 房产押金
     */
    private BigDecimal depositMoney;

    /**
     * 支付方式(押X付Y的X)
     */
    private Integer depositType;

    /**
     * 支付方式(押X付Y的Y）
     */
    private Integer paymentType;

    /**
     * 合同签订时间，（暂定设置为提交日期）
     */
    private Date conSignTime;

    /**
     * 合同录入时间，（暂定设置为提交日期）
     */
    private Date conInfoTime;

    /**
     * 合同审核时间，（暂定设置为提交日期）
     */
    private Date conAudTime;

    /**
     * 合同录入人（暂定设置为创建人）
     */
    private Long operId;

    /**
     * 收房人，（暂定设置为创建人）
     */
    private Long sfUserId;

    /**
     * 收房人姓名
     */
    private String sfUserName;

    /**
     * 合同状态（1，草稿。2，已提交。3，已解约。4，已结束。9:作废）
     */
    private Integer status;

    /**
     * 续约状态（0，未续约。1，已续约）
     */
    private Boolean xyStatus;

    /**
     * 是否收房贷,0:否 1:是
     */
    private Boolean sfLoanFlg;

    /**
     * 冻结状态：0未冻结 1已冻结(申请金融服务的时候，才会有冻结状态)
     */
    private Boolean freezeStatus;

    /*******************5个新加字段start*********************/
    /**
     * 银行账户类型（对公账户、对私账户）AccountTypeEnum
     */
    private Integer accountType;

    /**
     * 银行卡号
     */
    private String bankCardNumber;

    /**
     * 账户名称（对公为企业名称，对私为姓名）
     */
    private String accountName;

    /**
     * 联行行号（手输，对公必须）
     */
    private String bankBranchCodeLh;

    /**
     * 开户行所在省ID
     */
    private Integer bankAccountProvince;
    /*******************新加字段end*********************/

    private Date startDate;

    private Date endDate;


    private String remark;

    private String[] houseDocumentPhotos;

    private String[] contractPhotos;

    private String[] cardPhotos;

    private String[] agentCardPhotos;

    private String[] bankCardInformationPhotos;

    private String[] attorneyPhotos;

    private String[] propertyDeliverys;

    private String[] otherPhotos;


    /**
     * 合同总金额（非保存项）
     */
    private BigDecimal totalAmount;
    /**
     * 收款计划首期or押金日期变更标志（非保存项）
     */
    private Integer houseLeaseType;
    private Integer preCycleChange;

    // 合同录入日期
    private String inputDateStart;
    private String inputDateEnd;
    /*付款信息单*/
   List<TCwPaymentPlanDto> payMentltems;

    // protected UserType loginUserType;
    protected Long loginUserId;

    SysUserInfo loginUser;
    //收房合同ID
    private Long sfContractId;
}
